﻿using ShareCode.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;

namespace ClientAppraise.Services
{
    public interface IZxDrawerService
    {
        // public ContentPresenter Content { get; set; }
        ContentPresenter? EjectContentPresenter(int HashCode);
        void PushContentPresenter(int HashCode, ContentPresenter? contentPresenter);
        Task<ResultDto<object>> ShowDrawer(UserControl control);

        Task<ResultDto<object>> ShowDrawer<T>(out T? control) where T : UserControl;
        Task<ResultDto<object>> ShowDrawer<T>() where T : UserControl;
        Task<ResultDto<object>> ShowDrawer<T>(Action<T> action) where T : UserControl;

        void CloseDrawer(bool result);
        void CloseDrawer(ResultDto<object> result);
    }
}
